<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>canps: xcanps_watermark_intr_example.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.gif"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">canps
   </div>
   <div id="projectbrief">Xilinx SDK Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('xcanps__watermark__intr__example_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">xcanps_watermark_intr_example.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>This example shows how to use the CAN driver/device in interrupt mode using the Rx Watermark Interrupt. </p>
<dl class="section note"><dt>Note</dt><dd>The Baud Rate Prescaler Register (BRPR) and Bit Timing Register (BTR) are setup such that CAN baud rate equals 40Kbps, assuming that the the CAN clock is 24MHz. The user needs to modify these values based on the desired bau rate and the CAN clock frequency. For more information see the CAN 2.0A, CAN 2.0B, ISO 11898-1 specifications.</dd></dl>
<pre></pre><pre>MODIFICATION HISTORY:</pre><pre>Ver   Who    Date       Changes
<hr/>

1.00a xd/sv  01/12/10 First release
3.1   adk    10/11/15 Fixed CR#911958 Add support for Tx Watermark testing.</pre><pre></pre> </div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:afd665c910e227f7c79d743b10d2273bd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcanps__watermark__intr__example_8c.html#afd665c910e227f7c79d743b10d2273bd">CanPsWatermarkIntrExample</a> (XScuGic *IntcInstPtr, <a class="el" href="struct_x_can_ps.html">XCanPs</a> *CanInstPtr, u16 CanDeviceId, u16 CanIntrId)</td></tr>
<tr class="memdesc:afd665c910e227f7c79d743b10d2273bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main entry point for showing the usage of <a class="el" href="struct_x_can_ps.html" title="The XCanPs driver instance data. ">XCanPs</a> driver in interrupt mode.  <a href="#afd665c910e227f7c79d743b10d2273bd">More...</a><br /></td></tr>
<tr class="separator:afd665c910e227f7c79d743b10d2273bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xcanps__watermark__intr__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the main function of the Can Rx Watermark interrupt example.  <a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">More...</a><br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="afd665c910e227f7c79d743b10d2273bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd665c910e227f7c79d743b10d2273bd">&#9670;&nbsp;</a></span>CanPsWatermarkIntrExample()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int CanPsWatermarkIntrExample </td>
          <td>(</td>
          <td class="paramtype">XScuGic *&#160;</td>
          <td class="paramname"><em>IntcInstPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_x_can_ps.html">XCanPs</a> *&#160;</td>
          <td class="paramname"><em>CanInstPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>CanDeviceId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>CanIntrId</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The main entry point for showing the usage of <a class="el" href="struct_x_can_ps.html" title="The XCanPs driver instance data. ">XCanPs</a> driver in interrupt mode. </p>
<p>The example configures the device for internal loop back mode, then sends multiple CAN frames and receives the same number of CAN frame's using the Rx Watermark Interrupt.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">IntcInstPtr</td><td>is a pointer to the instance of the ScuGic driver. </td></tr>
    <tr><td class="paramname">CanInstPtr</td><td>is a pointer to the instance of the CAN driver which is going to be connected to the interrupt controller. </td></tr>
    <tr><td class="paramname">CanDeviceId</td><td>is the device Id of the CAN device and is typically XPAR_&lt;CANPS_instance&gt;_DEVICE_ID value from xparameters.h. </td></tr>
    <tr><td class="paramname">CanIntrId</td><td>is the interrupt Id and is typically XPAR_&lt;CANPS_instance&gt;_INTR value from xparameters.h.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS if successful, otherwise driver-specific error code.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>If the device is not working correctly, this function may enter an infinite loop and will never return to the caller. </dd></dl>

<p class="reference">References <a class="el" href="group__canps__v3__0.html#ga3d3245fb9be426b1f1cca0b20ea90905">XCanPs_LookupConfig()</a>.</p>

<p class="reference">Referenced by <a class="el" href="xcanps__watermark__intr__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int main </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the main function of the Can Rx Watermark interrupt example. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if the example has completed successfully.</li>
<li>XST_FAILURE if the example has failed.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

<p class="reference">References <a class="el" href="xcanps__watermark__intr__example_8c.html#afd665c910e227f7c79d743b10d2273bd">CanPsWatermarkIntrExample()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Copyright &copy; 2015 Xilinx Inc. All rights reserved.</li>
  </ul>
</div>
</body>
</html>
